package ventanas;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;

import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

import bean.Modelo;
import recursos.MIFMantenimiento;
import recursos.Sesion;
import javax.swing.JCheckBox;
import javax.swing.JLabel;

public class IFModelo extends MIFMantenimiento {
	private static final long serialVersionUID = 1L;
	private JLabel lblMarca;
	private JCheckBox chkDMarca;

	public IFModelo() {
		chkDActivo.setSize(21, 23);
		scpBusqueda.setBounds(10, 69, 395, 208);
		lblBTipo.setSize(71, 14);
		lblBDescripcion.setSize(56, 16);
		cboBTipo.setSize(140, 20);
		lblBSituacion.setLocation(346, 21);
		txtBDescripcion.setSize(71, 20);
		lblBTipo.setLocation(136, 21);
		cboBTipo.setLocation(136, 38);
		cboBActivo.setSize(57, 20);
		cboBActivo.setLocation(346, 38);
		lblBNombre.setSize(63, 14);
		lblBNombre.setLocation(10, 21);
		lblBCodigo.setLocation(68, 20);
		chkDActivo.setLocation(320, 31);
		lblDActivo.setLocation(317, 17);
		txtDNombre.setSize(306, 20);
		lblDOrden.setLocation(326, 53);
		txtDOrden.setLocation(326, 68);
		cboDTipo.setSize(306, 20);
		lblDNombre.setLocation(10, 17);
		cboDTipo.setLocation(10, 68);
		txtDNombre.setLocation(10, 31);
		lblDTipo.setLocation(10, 54);
		txtDBuscar.setSize(91, 20);
		txtDBuscar.setLocation(68, 8);
		lblDBuscar.setLocation(87, 11);
		lblDDescripcion.setSize(86, 16);
		txtDDescripcion.setSize(86, 20);
		txtDDescripcion.setLocation(68, 8);
		lblDDescripcion.setLocation(68, 10);
		txtBCodigo.setLocation(68, 18);
		txtBCodigo.setVisible(false);
		lblBCodigo.setVisible(false);
		lblBNombre.setText("Modelo");
		lblDNombre.setText("Modelo");
		pnBusqueda.setBounds(10, 113, 414, 288);
		pnDatos.setBounds(10, 7, 414, 97);
		
		chkDMarca = new JCheckBox("");
		chkDMarca.setEnabled(false);
		chkDMarca.setBounds(369, 31, 21, 23);
		pnDatos.add(chkDMarca);
		
		lblMarca = new JLabel("Marca");
		lblMarca.setBounds(369, 17, 45, 14);
		pnDatos.add(lblMarca);
		lblDBuscar.setVisible(false);
		txtDBuscar.setVisible(false);
		txtDDescripcion.setVisible(false);
		lblDDescripcion.setVisible(false);
		txtBNombre.setBounds(10, 38, 120, 20);
		lblBDescripcion.setLocation(68, 20);
		txtBDescripcion.setLocation(68, 18);
		lblBBuscar.setLocation(93, 21);
		txtBBuscar.setLocation(68, 18);
		lblBOrden.setLocation(284, 20);
		txtBOrden.setLocation(284, 38);
		txtBBuscar.setVisible(false);
		lblBBuscar.setVisible(false);
		txtBDescripcion.setVisible(false);
		lblBDescripcion.setVisible(false);
		cboDTipo.executeQuery("tbl_TipoInformacion", "id", "nombre_tipo"," situacion='01' ");
		cboBTipo.executeQuery("tbl_TipoInformacion", "id", "nombre_tipo", " situacion='01' ");
		setTitle(getTitle() + "-" + Sesion.tfiMantenimientoModelo);
		registrarCabecera();
		activaControles();
		limpiarTabla();

		tbBusqueda.addKeyListener(new KeyAdapter() {
			@Override
			public void keyReleased(KeyEvent e) {
				pintar();
			}
		});

		tbBusqueda.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseReleased(MouseEvent e) {
				pintar();
			}
		});

	}

	@Override
	public void limpiarTabla() {
		tbBusqueda.setModel(dtm = new DefaultTableModel(datos, cabecera));
		ocultarColumna();
		setResultadoBusqueda(tbBusqueda.getRowCount());
		TableColumn colNombre = tbBusqueda.getColumn(1);
		TableColumn colTbiden = tbBusqueda.getColumn(2);
		TableColumn colOrden = tbBusqueda.getColumn(3);
		TableColumn colSit = tbBusqueda.getColumn(4);
		TableColumn colSMarca = tbBusqueda.getColumn(5);

		colNombre.setPreferredWidth(200);
		colTbiden.setPreferredWidth(100);
		colOrden.setPreferredWidth(45);
		colSit.setPreferredWidth(40);
		colSMarca.setPreferredWidth(40);
	}
	
	private void ocultarColumna(){
		tbBusqueda.getColumnModel().getColumn(0).setMaxWidth(0);
		tbBusqueda.getColumnModel().getColumn(0).setMinWidth(0);
		tbBusqueda.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(0);
		tbBusqueda.getTableHeader().getColumnModel().getColumn(0).setMinWidth(0);
	}

	public void cargarTabla(List<Modelo> list) {
		limpiarTabla();
		for (Modelo obj : list) {
			Object datos[] = { obj.getId(), obj.getModelo(),obj.getTbiden(), obj.getOrden(),
					obj.getSituacion(),obj.getMarca() };
			dtm.addRow(datos);
		}
		setResultadoBusqueda(tbBusqueda.getRowCount());
	}

	public void cargarTabla(Modelo obj) {
		limpiarTabla();
		Object datos[] = { obj.getId(), obj.getModelo(),obj.getTbiden(), obj.getOrden(),
				obj.getSituacion(),obj.getMarca() };
		dtm.addRow(datos);
		setResultadoBusqueda(tbBusqueda.getRowCount());
	}

	@Override
	public void registrarCabecera() {
		cabecera = new String[6];
		cabecera[0] = "Id";
		cabecera[1] = "Modelo";
		cabecera[2] = "Tipo";
		cabecera[3] = "Orden";
		cabecera[4] = "Sit.";
		cabecera[5] = "Marca";
	}

	private void pintar() {
		if (tbBusqueda.getSelectedRow() > -1) {
			String id = tbBusqueda.getValueAt(tbBusqueda.getSelectedRow(), 0)
					.toString();
			String nombre = tbBusqueda.getValueAt(tbBusqueda.getSelectedRow(),
					1).toString();
			String tipo = tbBusqueda
					.getValueAt(tbBusqueda.getSelectedRow(), 2).toString();
			String orden = tbBusqueda
					.getValueAt(tbBusqueda.getSelectedRow(), 3).toString();
			String activo = tbBusqueda
					.getValueAt(tbBusqueda.getSelectedRow(), 4).toString()
					.trim();
			String marca = tbBusqueda
					.getValueAt(tbBusqueda.getSelectedRow(), 5).toString()
					.trim();
			setId(id);
			setDNombre(nombre);
			setDTipo(tipo);
			setDOrden(orden);
			if (activo.equals("01")) {
				setDActivo(true);
			} else {
				setDActivo(false);
			}
			if(marca.equals("0")){
				setDMarca(false);
			} else{
				setDMarca(true);
			}
		}
	}
	
	public JCheckBox getChkDMarca(){
		return chkDMarca;
	}
	
	public boolean getDMarca(){
		return chkDMarca.isSelected();
	}
	
	public void setDMarca(boolean activo){
		chkDMarca.setSelected(activo);
	}
}
